package com.java.base.exercise.threadlocal;

/**
 * @Author RenPu
 * @Date 2021/8/28 16:09
 * @Version 1.0
 * @Description: 模拟Thread中的stop方法停止线程，造成的问题场景  （产生脏数据，有的连队，会存在重复领取，数据也会丢失）
 * 2: suspend()和 resume()  当线程调用此方法，线程会持有锁进行挂起（会造成死锁的现象）
 **/
public class StopThread implements Runnable {


    //模拟5个连队领取武器，每个连队有10人

    @Override
    public void run() {

        for (int i = 0; i < 5; i++) {
            System.out.println("连队编号为：" + i + "开始领取武器装备");
            for (int j = 0; j < 10; j++) {
                System.out.println("连队番号：" + i + "姓名" + j + "已领取个人武器装备");

                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("连队编号为：" + i + "领取武器已完成");

        }


    }


    public static void main(String[] args) {

        Thread thread = new Thread(new StopThread());
        thread.start();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        thread.stop();
        thread.suspend();

    }
}
